module.exports = {
    /**
     * @api {model} backend_participants backend_participants
     * @apiDescription 后台用户访问记录
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} public_key 访问用户的本地SSO Token的 key
     * @apiParam {Timestamp} last_participant 最后一次访问的时间
     * @apiParam {String} uid 访问用户ID => backend_operators
     * @apiParam {Object} profile 当次访问的临时记录痕迹
     */
    "backend_participants": {

        "id"               : @lab.types.id(),

        "public_key"       : @lab.types.string("", 255),

        "last_participant" : @lab.types.date(),

        "uid"              : @lab.types.string(),

        "user_ip"          : @lab.types.string(),

        "profile"          : @lab.types.object(),
    },

    /**
     * @api {model} backend_operators backend_operators
     * @apiDescription 后台用户
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} ouid 所属组织单元ID
     * @apiParam {String} name 用户显示名
     * @apiParam {String} icon 用户头像
     * @apiParam {String} account 用户账户
     * @apiParam {String} password 用户密码
     * @apiParam {String} salt 用户密码盐
     * @apiParam {Number} identity 用户身份识别码
     * @apiParam {String[]} access 用户权限
     * @apiParam {Object} profile 当次访问的临时记录痕迹
     * @apiParam {Boolean} is_admin 管理员标志
     * @apiParam {Boolean} is_removed 删除标志
     * @apiParam {Boolean} is_bot 虚拟用户标志
     * @apiParam {Timestamp} create_date 创建时间
     */
    "backend_operators": {

        "id"         : @lab.types.id(),

        "ouid"       : @lab.types.string(),

        "name"       : @lab.types.string(),

        "icon"       : @lab.types.string(),

        "account"    : @lab.types.string(),

        "password"   : @lab.types.string(),
        
        "salt"       : @lab.types.string(),

        "identity"   : @lab.types.number(),

        "access"     : @lab.types.strings(),

        "profile"    : @lab.types.object(),

        "is_admin" : @lab.types.bool(),

        "is_removed" : @lab.types.bool(),

        "is_bot"     : @lab.types.bool(),

        "create_date" : @lab.types.date(),
    },

    /**
     * @api {model} backend_identities backend_identities
     * @apiDescription 后台用户身份
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} name 身份显示名
     * @apiParam {String} symbol 符号
     * @apiParam {Number} idx 标识数据位
     * @apiParam {String} parent_id 父身份ID
     * @apiParam {Number} parent_idx 父身份标识数据位
     * @apiParam {Number} hash 标识的HASH
     * @apiParam {Boolean} is_removed 删除标志
     */
    "backend_identities" : {
        
        "id"         : @lab.types.id(),

        "name"       : @lab.types.string(),

        "symbol"     : @lab.types.string(),

        "idx"        : @lab.types.number(),

        "parent_id"  : @lab.types.string(),

        "parent_idx" : @lab.types.number(),

        "hash"       : @lab.types.number(),

        "is_removed" : @lab.types.bool(),

    },

    /**
     * @api {model} backend_identity_operate_records backend_identity_operate_records
     * @apiDescription 后台用户身份更新记录
     * @apiGroup database
     * @apiParam {String} id 主键
     * @apiParam {String} uid 相关用户ID
     * @apiParam {String} identity_id 相关身份ID
     * @apiParam {String} operator_id 相关操作员ID
     * @apiParam {String} action 操作名称
     * @apiParam {Timestamp} create_date 时间戳
     */
    "backend_identity_operate_records" : {

        "id"         : @lab.types.id(),

        "uid"        : @lab.types.string(),

        "identity_id" : @lab.types.string(),

        "operator_id" : @lab.types.string(),

        "action"      : @lab.types.string(),

        "create_date" : @lab.types.date(),
    }
}